package com.huike.pmps.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;


import java.math.BigDecimal;
import java.util.Date;

/**
 * 作者：谌贵斌(黑桃K)
 * 日期: 2888-08-08
 * 老师QQ: 272488352
 * 官方QQ交流群: 377748272
 * 刀客程序员官网：http://www.daoke360.com
 * 刀客程序员淘宝旗舰店：https://daoke360.taobao.com/
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("p_po_course")
public class POCourse {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("po 主键ID")
    private Integer poId;
    @ApiModelProperty("po单号")
    private String po;
    @ApiModelProperty("客户名称")
    private String customerName;
    @ApiModelProperty("po负责人ID")
    private Integer poChargeId;
    @ApiModelProperty("po负责人名称")
    private String poChargeName;
    @ApiModelProperty("战区ID")
    private Integer regionId;
    @ApiModelProperty("战区名字")
    private String regionName;
    @ApiModelProperty("省份ID")
    private Integer provinceId;
    @ApiModelProperty("省份名称")
    private String provinceName;
    @ApiModelProperty("课程ID")
    private Long courseId;
    @ApiModelProperty("课程名称")
    private String courseName;
    @ApiModelProperty("课程类别ID")
    private Integer courseTypeId;
    @ApiModelProperty("课程类别名称")
    private String courseTypeName;
    @ApiModelProperty("课程编导/经理/负责人 ID")
    private Integer courseChargeId;
    @ApiModelProperty("课程编导/经理/负责人名称")
    private String courseChargeName;
    @ApiModelProperty("学科门类ID")
    private Integer subjectCategoryId;
    @ApiModelProperty("学科门类名称")
    private String subjectCategoryName;
    @ApiModelProperty("专业类别")
    private String majorCategory;
    @ApiModelProperty("讲师姓名")
    private String teacher;
    @ApiModelProperty("讲师联系方式")
    private String phone;
    @ApiModelProperty("前期沟通进度ID")
    private Integer earlyExchangeId;
    @ApiModelProperty("前期沟通进度名称")
    private String earlyExchangeName;
    @ApiModelProperty("预估数量")
    private Integer estimateQuantity;
    @ApiModelProperty("预估时长")
    private Integer estimateTimeLength;
    @ApiModelProperty("样片是否确认 0否，1是")
    private Integer sampleConfirm;
    @ApiModelProperty("开始拍摄日期")
    private Date shootStartDate;
    @ApiModelProperty("开始制作日期")
    private Date makeStartDate;
    @ApiModelProperty("项目交付日期")
    private Date projectDeliveryDate;
    @ApiModelProperty("拍摄形式ID")
    private Integer shootModeId;
    @ApiModelProperty("拍摄形式名称")
    private String shootModeName;
    @ApiModelProperty("拍摄数量")
    private Integer shootQuantity;
    @ApiModelProperty("初版数量")
    private Integer firstEditionQuantity;
    @ApiModelProperty("终版数量")
    private Integer endEditionQuantity;
    @ApiModelProperty("终版时长(如：11:23:23)")
    private String endEditionTimeLength;
    @ApiModelProperty(value = "终版时长", hidden = true)
    private Double endEditionTimeLength2;
    @ApiModelProperty("宣传片(0无,1未制作，2已完成)")
    private Integer isTrailer;
    @ApiModelProperty("完成度")
    private String degreeOfCompletion;
    @ApiModelProperty("是否完成(0没有,1完成)")
    private Integer isFinished;
    @ApiModelProperty("课程合同金额")
    private BigDecimal contractAmount;
    @ApiModelProperty("合同已回款金额")
    private BigDecimal contractPaymentReceived;
    @ApiModelProperty("合同未回款金额")
    private BigDecimal contractOutstandingPayment;
    @ApiModelProperty("预估供应商总金额")
    private BigDecimal estimatedGenerationCost;
    @ApiModelProperty("已支付供应商金额")
    private BigDecimal supplierPaidAmount;
    @ApiModelProperty("未支付供应商金额")
    private BigDecimal supplierUnpaidAmount;
    @ApiModelProperty("预估结款日期")
    private Date estimatedSettlementDate;
    @ApiModelProperty("上线平台")
    private String onlinePlatform;
    @ApiModelProperty("上线情况/状态ID")
    private Integer onlineId;
    @ApiModelProperty("上线情况/状态名称")
    private String onlineName;
    @ApiModelProperty("合同交付日期")
    private Date contractDeliveryDate;
    @ApiModelProperty("课程进度ID")
    private Integer courseScheduleId;
    @ApiModelProperty("课程进度名称")
    private String courseScheduleName;
    @ApiModelProperty("课程状态")
    private String courseState;
    @ApiModelProperty("课程进度备注")
    private String courseScheduleRemark;
    @ApiModelProperty("验收单名称")
    private String acceptanceReportName;
    @ApiModelProperty("验收单保存路径")
    private String acceptanceReportPath;
    @ApiModelProperty("验收单描述")
    private String acceptanceReportDesc;
    @ApiModelProperty("分配日期")
    private Date distributionDate;
    @ApiModelProperty(value = "导入标记(1非导入,2导入)", hidden = true)
    private Integer importFlag;
    @ApiModelProperty(value = "从旧系统中导入的原始PO课程ID", hidden = true)
    private Integer importCourseId;
    @ApiModelProperty("编辑状态（false or true）")
    private Boolean rowEdit;
    @ApiModelProperty("记录状态(0未确认,1已确认)")
    private Integer state;
    @ApiModelProperty("记录更新时间")
    private Date updateTime;
    @ApiModelProperty("记录创建时间")
    private Date createTime;

    /**
     * add by zcw 2021-07-01 新增 交付时间 验收时间 完结时间 终止时间
     */
    @ApiModelProperty("课程进行中时间")
    private Date startTime;
    @ApiModelProperty("课程交付时间")
    private Date deliverTime;
    @ApiModelProperty("课程验收时间")
    private Date receptTime;
    @ApiModelProperty("课程完结时间")
    private Date finishTime;
    @ApiModelProperty("课程终止时间")
    private Date overTime;
    @ApiModelProperty("课程验收时长")
    private String receptTimeLength;
    /**
     * add by zcw 2021-06-30 新增 客户成功ID 客户成功名称
     */
    @ApiModelProperty("客户成功ID")
    private Integer teamId;
    @ApiModelProperty("客户成功名称")
    private String teamName;
}
